Un notebook jupyter est un environnement de developpement en ligne à base de cellules executables qui contient
des cellule en markdown (comme celle-ci) (texte mis en forme)
des cellules en python (ou R)
On lance un notebook jupyter avec la commande suivante
> jupyter notebook
# list comprehension
liste_a = [1,2,3,4,5,6,5,4,3,2,1, 12, 10]
liste_b = [3,5,7,9,7,3,1,3,5, 2,2]
# liste_c contient les elements communs a liste_a et liste_b
liste_c = [x for x in liste_a if x in liste_b]
# les elements uniques de liste_c
sorted(list(set(liste_c)))
[1, 2, 3, 5]
df.head()
IDBASE | TYPEEMPLACEMENT | DOMANIALITE | ARRONDISSEMENT | COMPLEMENTADRESSE | NUMERO | LIEU / ADRESSE | IDEMPLACEMENT | LIBELLEFRANCAIS | GENRE | ESPECE | VARIETEOUCULTIVAR | CIRCONFERENCEENCM | HAUTEUR (m) | STADEDEVELOPPEMENT | REMARQUABLE | geo_point_2d | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 232702.0 | Arbre | Alignement | PARIS 11E ARRDT | NaN | NaN | BOULEVARD DE MENILMONTANT | 000602002 | Sophora | Sophora | japonica | NaN | 55.0 | 5.0 | JA | 0.0 | 48.8652353853, 2.38481800435 |
1 | 235862.0 | Arbre | Alignement | PARIS 18E ARRDT | NaN | NaN | AVENUE DE LA PORTE DE CLIGNANCOURT | 000303007 | Tilleul | Tilia | tomentosa | NaN | 60.0 | 10.0 | JA | NaN | 48.8999949231, 2.34379810146 |
2 | 236391.0 | Arbre | Alignement | PARIS 15E ARRDT | 27 | NaN | BOULEVARD GARIBALDI | 000101024 | Noisetier de Byzance | Corylus | colurna | NaN | 60.0 | 10.0 | JA | NaN | 48.8470727044, 2.30470921442 |
3 | 241122.0 | Arbre | Alignement | PARIS 14E ARRDT | NaN | NaN | RUE SARRETTE | 000501003 | Tilleul | Tilia | tomentosa | NaN | 155.0 | 12.0 | A | 0.0 | 48.8259993388, 2.32878574525 |
4 | 99927.0 | Arbre | Jardin | PARIS 16E ARRDT | NaN | NaN | JARDIN DU RANELAGH | 00030007 | Erable | Acer | platanoides | 'Schwedleri' | 125.0 | 0.0 | NaN | NaN | 48.858836461, 2.26870442691 |
import pandas as pd
DATA_PATH = '../data/'
# load le dataset dans une dataframe pandas
# Preciser que les colonnes du fichiers sont séparées par un ; et non une ,
df = pd.read_csv(DATA_PATH + 'les-arbres.ctsv', sep = ';', error_bad_lines = False)
b'Skipping line 1916: expected 17 fields, saw 18\n'
# Les 5 premiers lignes du dataset
df.describe()
IDBASE | NUMERO | CIRCONFERENCEENCM | HAUTEUR (m) | REMARQUABLE | |
---|---|---|---|---|---|
count | 2.003320e+05 | 0.0 | 200332.000000 | 200332.000000 | 137203.000000 |
mean | 3.871040e+05 | NaN | 83.377988 | 13.108235 | 0.001341 |
std | 5.454652e+05 | NaN | 672.864029 | 1970.258098 | 0.036596 |
min | 9.987400e+04 | NaN | 0.000000 | 0.000000 | 0.000000 |
25% | 1.558788e+05 | NaN | 30.000000 | 5.000000 | 0.000000 |
50% | 2.210865e+05 | NaN | 70.000000 | 8.000000 | 0.000000 |
75% | 2.741462e+05 | NaN | 115.000000 | 12.000000 | 0.000000 |
max | 2.024745e+06 | NaN | 250255.000000 | 881818.000000 | 1.000000 |
# exemple de string interpolation
print("le dataset a {} echantillons et {} variables".format(
df.shape[0], df.shape[1]
))
le dataset a 200332 echantillons et 17 variables
# le nombre d'arbres par espece pour les 10 espece les plus fréquentes:
df.LIBELLEFRANCAIS.value_counts()
Platane 42565 Marronnier 25231 Tilleul 21335 Erable 18403 Sophora 11798 Frêne 5171 Pin 4844 Micocoulier 4201 Chêne 3866 Cerisier à fleurs 3767 Charme 3472 Poirier à fleurs 3409 Noisetier de Byzance 3372 Peuplier 3314 Robinier 2306 Bouleau 2252 Orme 2070 If 1995 Hêtre 1926 Paulownia 1413 Fevier 1394 Faux-cyprès 1212 Cyprès 1205 Noyer 1130 Tulipier 1128 Magnolia 1127 Cedrele 1067 Arbre de Judée 1019 Pterocarya 997 Prunier à fleurs 976 ... Poliothyrsis 2 Tapiscia 2 Staphylier 2 Goyavier 1 Idesia 1 Ormeau épineux 1 Sycopsis 1 Stewartia 1 Amla 1 Genêt 1 Camphrier 1 Ostryer 1 Xanthoceras 1 Distylium 1 Callistemon 1 Fremontia 1 Andromède 1 Maackie 1 Jujubier 1 Laurier des Açores 1 Cordyline 1 Caragana 1 Papayer 1 Asiminier 1 Pistachier 1 Heptacodion de Chine 1 Seringas 1 Garrya 1 Faux dattier 1 Euscaphis 1 Name: LIBELLEFRANCAIS, Length: 193, dtype: int64
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(df['CIRCONFERENCEENCM'][0:1000], df['HAUTEUR (m)'][0:1000], '.')
[<matplotlib.lines.Line2D at 0x10c74ae80>]